package front

import (
	"geekai/api/handler"
	"geekai/core"
	"geekai/model"
	"geekai/utils"
	"github.com/gin-gonic/gin"
	"gorm.io/gorm"
)

type ConfigHandler struct {
	handler.BaseHandler
}

func NewConfigHandler(app *core.AppServer, db *gorm.DB) *ConfigHandler {
	return &ConfigHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}}
}

// Get godoc
// @Summary      获取指定的系统配置
// @Description  获取指定的系统配置
// @Tags         系统配置
// @Accept       json
// @Produce      json
// @Param        key   query     string  true  "获取指定的系统配置"
// @Success      200  {object}  types.BizVo{date=map[string]interface{}}
// @Router       /api/config/get [get]
func (h *ConfigHandler) Get(c *gin.Context) {
	key := c.Query("key")
	var config model.Config
	res := h.DB.Where("marker", key).First(&config)
	if res.Error != nil {
		utils.ERROR(c, "获取系统配置出现错误："+res.Error.Error())
		return
	}
	var value map[string]interface{}
	err := utils.JsonDecode(config.Config, &value)
	if err != nil {
		utils.ERROR(c, "获取系统配置，JSON解码出错："+err.Error())
		return
	}
	utils.SUCCESS(c, value)
}
